মাষ্টার পেজ এবং Nested Layouts

Web Development - অ্যাপাচি ট্যাপেস্ট্রি (Apache Tapestry) - Tapestry এর টেমপ্লেট এবং লেআউট |

Apache Tapestry একটি component-based ওয়েব ফ্রেমওয়ার্ক, যা UI উপাদানগুলি পুনঃব্যবহারযোগ্য এবং মডুলার করে তোলে। Tapestry তে Master Pages এবং Nested Layouts ব্যবহারের মাধ্যমে একটি একক UI ডিজাইন পুনরায় ব্যবহারযোগ্য করা যায় এবং ডেভেলপাররা একটি কেন্দ্রীয় লেআউট ব্যবহার করে তাদের অ্যাপ্লিকেশন ডিজাইনকে সহজে কাস্টমাইজ করতে পারেন।


মাস্টার পেজ (Master Page)

Tapestry তে Master Page হলো একটি মূল লেআউট যা অ্যাপ্লিকেশনটির শেয়ার্ড UI ডিজাইন এবং কাঠামোকে সংজ্ঞায়িত করে। মাস্টার পেজের মাধ্যমে আপনি একটি সাধারণ লেআউট তৈরি করতে পারেন এবং সেই লেআউটটি বিভিন্ন পেজে পুনঃব্যবহার করতে পারেন।

মাস্টার পেজ মূলত HTML টেমপ্লেটের আকারে তৈরি হয় এবং এটি বিভিন্ন পেজের জন্য একটি শেয়ার্ড কাঠামো প্রদান করে, যেমন header, footer, এবং navigation

মাস্টার পেজ তৈরি

  1. মাস্টার পেজের টেমপ্লেট তৈরি করা
    মাস্টার পেজের টেমপ্লেটটি একটি সাধারণ HTML ফাইল যা শেয়ারড UI উপাদান ধারণ করে।

    উদাহরণ:

    <!-- MasterPage.tml -->
    <!DOCTYPE html>
    <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
    <head>
        <title>Tapestry Application</title>
    </head>
    <body>
        <header>
            <h1>My Tapestry Application</h1>
            <nav>
                <ul>
                    <li><a href="/home">Home</a></li>
                    <li><a href="/about">About</a></li>
                </ul>
            </nav>
        </header>
    
        <div id="content">
            <!-- Content will be inserted here -->
            <t:insert />
        </div>
    
        <footer>
            <p>© 2024 My Company</p>
        </footer>
    </body>
    </html>
    
  2. মাস্টার পেজের Java ক্লাস তৈরি করা

    মাস্টার পেজে যুক্ত Java ক্লাসটি টেমপ্লেটের জন্য কাজ করবে। সাধারণত, এটি একটি সহজ Layout ক্লাস হতে পারে যা Tapestry কম্পোনেন্টের মতো কাজ করে।

    উদাহরণ:

    @Import(stylesheet = "style.css")
    public class MasterPage {
        // কোন বিশেষ লজিকের প্রয়োজন হলে এখানে যুক্ত করতে পারেন।
    }
    

Nested Layouts

Tapestry তে Nested Layouts এর মাধ্যমে আপনি একটি মূল মাস্টার পেজে একাধিক উপ-layout (sub-layout) বা nested layouts অন্তর্ভুক্ত করতে পারেন। এতে বিভিন্ন পেজের মধ্যে একটি সাধারণ কাঠামো বজায় থাকে, কিন্তু প্রত্যেকটি পেজে পৃথক পৃথক কনটেন্ট অন্তর্ভুক্ত করা হয়।

Nested Layouts ব্যবহার করা

  1. Sub-Layout টেমপ্লেট তৈরি করা

    একটি sub-layout টেমপ্লেট তৈরি করুন যা মাস্টার পেজের মধ্যে অন্তর্ভুক্ত হবে। উদাহরণস্বরূপ, HomeLayout.tml একটি পেজের জন্য একটি sub-layout হতে পারে।

    <!-- HomeLayout.tml -->
    <t:layout>
        <h2>Welcome to the Home Page</h2>
        <p>This is the main content for the home page.</p>
    </t:layout>
    
  2. Sub-Layout এর Java ক্লাস তৈরি করা

    sub-layout এর জন্য একটি Java ক্লাস তৈরি করুন যা মাস্টার পেজের কাঠামো অনুসরণ করে।

    @Import(stylesheet = "home.css")
    public class HomeLayout {
        // উপযুক্ত লজিক বা ইনজেকশন করতে পারেন
    }
    
  3. Main Page এর Layout অন্তর্ভুক্ত করা

    আপনি যেকোনো পেজে এই sub-layout বা nested layout ব্যবহার করতে পারেন। উদাহরণস্বরূপ:

    <!-- HomePage.tml -->
    <t:layout>
        <t:insert page="HomeLayout"/>
    </t:layout>
    

    এখানে HomeLayout sub-layout টেমপ্লেটের কনটেন্ট HomePage তে ইনসার্ট হবে।


মাস্টার পেজ এবং Nested Layouts এর সুবিধা

  • UI পুনঃব্যবহারযোগ্যতা: মাস্টার পেজ এবং nested layouts ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের UI উপাদান পুনঃব্যবহার করতে পারেন, যেমন হেডার, ফুটার, সাইডবার ইত্যাদি।
  • কাস্টমাইজযোগ্যতা: মূল কাঠামো বজায় রেখে প্রতিটি পেজের জন্য পৃথক কনটেন্ট তৈরি করতে পারেন। এটি কোড পুনঃব্যবহারযোগ্যতা এবং অ্যাপ্লিকেশন ডেভেলপমেন্টে কার্যকারিতা বৃদ্ধি করে।
  • সহজে পরিবর্তন: যখন আপনি একটি উপ-layout বা মাস্টার পেজে পরিবর্তন করেন, তখন তা পুরো অ্যাপ্লিকেশনের উপর প্রভাব ফেলে না, বরং এটি কেবল সেই অংশগুলির উপর প্রভাব ফেলে যেখানে তা ব্যবহার করা হয়েছে।

সারাংশ

মাস্টার পেজ এবং Nested Layouts Tapestry তে UI কাঠামো সহজে পুনঃব্যবহারযোগ্য এবং কাস্টমাইজযোগ্য করতে সহায়ক। মাস্টার পেজ সাধারণভাবে অ্যাপ্লিকেশনের শেয়ারড UI উপাদান (যেমন হেডার, ফুটার, সাইডবার) ধারণ করে, আর Nested Layouts এর মাধ্যমে আপনি সেই কাঠামোতে বিভিন্ন পেজের জন্য কনটেন্ট অন্তর্ভুক্ত করতে পারেন। এটি বড় অ্যাপ্লিকেশন গুলি মেইনটেইন করা এবং কোডের পুনঃব্যবহারযোগ্যতা বাড়ানোর জন্য খুবই কার্যকর।

Content added By
Promotion